<?php
/**
* [LupMisAllowedSync]
* ServiceImpl: TestUserServiceImpl
* 本代码为系统自动生成代码，请根据自己业务进行修改;
* 生成时间 2022-04-13 10:14:21;
* 版权所有 2020-2022 lizhongwen，并保留所有权利;
* 说明: 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用；不允许对程序代码以任何形式任何目的的再发布;
* 作者: 中文Lee;
* 作者主页: http://www.lizhongwen.com;
* 邮箱: 360811363@qq.com;
* QQ: 360811363;
*/
namespace modules\lup\service\impl;

use application\core\SnowFlake;
use modules\lup\mapper\TestUserMapper;
use modules\lup\service\TestUserService;
use Exception;

class TestUserServiceImpl implements TestUserService
{
    /**
     * TestUser数据列表
     * @param array $data
     * @param array $pagePars
     * @return array
     */
    function lists(array $data = [], array $pagePars = []): array
    {
        $lists = TestUserMapper::lists($data, $pagePars);

        return $lists;
    }

    /**
     * TestUser数据单条查询
     * @param array $data
     * @return array
     */
    function query(array $data): array
    {
        $query = TestUserMapper::query($data);

        return $query;
    }

    /**
     * TestUser添加
     * @param array $data
     * @return int
     */
    public function add(array $data): int
    {
        $data['id'] = $data['id'] ?? SnowFlake::instance()->nextId();
        $data['create_time'] = $data['create_time'] ?? date('Y-m-d H:i:s');
        return TestUserMapper::add($data);
    }

    /**
     * TestUser修改
     * @param array $data
     * @return int
     */
    public function edit(array $data): int
    {
        return TestUserMapper::edit($data);
    }

    /**
     * TestUser删除
     * @param array $data
     * @return int
     * @throws \Exception
     */
    public function del(array $data): int
    {
        $ids = $data['ids'];
        if (empty($ids)) {
            throw new Exception("请至少选择一条数据");
        }
        $delNum = 0;
        $idsArr = explode(",", $ids);
        foreach ($idsArr as $id) {
            $delNum += TestUserMapper::del(['id' => $id]);
        }
        return $delNum;
    }
}